package tt.com.mourninghallmanager.service;

import com.baomidou.mybatisplus.extension.service.IService;
import tt.com.common.model.Dead;
import tt.com.common.model.DeadHall;
import tt.com.common.util.CommonResult;
import tt.com.common.util.PageUtil;

public interface DeadHallService extends IService<DeadHall> {

    /**
     * 展示灵堂信息
     * @param i （0展示未进厅信息,其余数字为以安排的灵堂id,默认为0）
     * @param pageUtil 分页数据
     * @return
     */
    public CommonResult showDeadHall(String i, PageUtil pageUtil);

    /**
     * 查询信息
     * @param deadHall
     * @param pageUtil
     * @return
     */
    public CommonResult selectDeadHallMessage(DeadHall deadHall,PageUtil pageUtil);

    /**
     * 伪删除业务信息
     * @param deadHall
     * @return
     */
    public CommonResult deleteDeadHall(DeadHall deadHall);

    /**
     * 刷新页面 展示灵堂业务信息
     * @param pageUtil
     * @return
     */
    public CommonResult refreshDeadHall(PageUtil pageUtil);

    /**
     * 更新进厅时间
     * @param deadHall 获取对象id，根据对象id更新进厅时间
     * @return
     */
    public CommonResult goDeadHall(DeadHall deadHall);

    /**
     * 更新出厅时间
     * @param deadHall 获取对象id，根据对象id更新出厅时间
     * @return
     */
    public CommonResult outDeadHall(DeadHall deadHall);

    /**
     * 修改灵堂业务信息
     * @param deadHall
     * @return
     */
    public CommonResult updateDeadHall(DeadHall deadHall);

    /**
     * 添加灵堂服务
     * @param deadHall
     * @return
     */
    public CommonResult insertDeadHall(DeadHall deadHall);

    /**
     * 展示所有空闲灵堂信息
     * @param pageUtil 分页数据
     * @return
     */
    public CommonResult changeFreeDeadHall(PageUtil pageUtil);

    /**
     * 变更灵堂状态,将灵堂状态切换为守灵（0为守灵 1为告别）
     * @param deadHall
     * @return
     */
    public CommonResult changeHallTypeBySoul(DeadHall deadHall);

    /**
     * 变更灵堂状态,将灵堂状态切换为告别（0为守灵 1为告别）
     * @param deadHall
     * @return
     */
    public CommonResult changeHallTypeByLeave(DeadHall deadHall);

    /**
     * 逝者信息预登记
     * @param dead
     * @return
     */
    public CommonResult addHeadHumanMeassage(Dead dead);
}
